Computer systems are used to process data. Data may be processed by client-server computer systems or by mainframe computers in a host-computer architecture.
In a client-server computer system, one or more client computer systems can request data from a server computer system. The server computer system provides the client computer system with the requested data for processing and/or display by the client computer system. The client computer system can also transmit data to the server computer system for storage. This data can replace or supplement the data on the server computer system. If the client computer system requests data from the server computer system with the possibility that the data may be changed and stored back onto the server computer system, the client computer system instructs the server computer system to lock the portion of the data so requested. Locking the data prohibits other client computer systems or the server computer system from altering or locking the data being processed by the first client computer system. Locking prevents conflicts between the client computer system requesting the data for possible update, and other client computer systems that may attempt to change the data requested by the first client computer system before it is updated by that client computer system.
Client-server software developed for client-server systems may be used to handle the special needs of client-server systems. These needs include locating and providing requested data, handling the record locking on the server and prohibiting some types of access on locked data, and updating the data received from the client.
Client-server software also serves to prohibit a client that has locked a record from keeping one or more records locked by the server perpetually if the client computer system and server system cease communicating. This termination in communication can be caused by communication problems between the client and the server, or termination of the program in the client that communicates with the server, such as if the client computer system crashes or is restarted by the user. Unlike host-based environments, in which a large mainframe computer system is under sole control of an MIS department, client computer systems are often accessible to their users, and can be restarted by the user or can crash due to other software running on the client computer system.
Host computer systems use a different arrangement to process data. Data is processed and stored on a computer system such as a mainframe computer system, and communicated to terminals connected to the mainframe computer system. In the case of some mainframe operating systems such as the MVS operating system, or the MVS operating system with the QSAM file access method, both commercially available from IBM Corporation of White Plains, N.Y., the application program in the mainframe is responsible for handling conflicts between users for the same data and for recovering from communication errors with the user. For example, the VSAM file access method commercially available from IBM Corporation of White Plains, N.Y. can enforce record locking, but does not prevent a record from becoming perpetually locked.
Some companies use both types of computer systems. A host computer system is used to operate transactionintensive critical applications. An example of a transaction-intensive critical application for an airline is the reservation system that assigns seats, provides tickets, and charges credit cards. A client-server system may be used to operate ancillary applications such as an employee scheduling system or a sales reporting system.
Sometimes, some of the data that may be useful in the client-server system is contained in the critical application operated on the host computer. For example, changes input to the host-based computer reservation system could be used to adjust the client-server employee scheduling system. Additionally, reservation information stored in the host-based computer reservation system could serve as input to the client-server sales reporting system.
One way to transfer information from a host computer system to a client-server system is to periodically copy the file in the host computer system to a separate server computer system. Although this arrangement allows server software to be used to perform the record locking and communication termination functions described above, this arrangement suffers from several drawbacks. First, the data on the server system is never current, prohibiting the client-server system from receiving the most up to date information. Second, the client-server system is not able to change the data in the host. For example, if changes are made to the reservation system for which employees cannot be found, it might be desirable for the client-server employee scheduling application to adjust the schedule in the reservation system.
One potential solution to this problem is to use the host as a server, and require the client to emulate the terminal connected to the host. However, the application on the host computer may not provide the functions required to supply multiple records to the client efficiently, and the application may be difficult to re-program.
It would be desirable to allow the host to act as a server for each client computer system. However, there are several difficulties with this approach. First, a means of prohibiting conflicts must be supported without allowing a client computer system that terminates communication with the host to perpetually lock records. Second, if the client computer system terminates communication with the host, host resources such as memory that were allocated to the client computer system must also be freed. Third, if the application that created and uses the data does not use a file access method supporting record locking, a different arrangement to prevent conflicts must be used on such files. Fourth, although many host computers contain a security system that allows an administrator to prohibit types of access to certain partitioned data sets, such security may not provide adequate granularity if access to data must be provided on a file basis.
What is needed is a method and system that can allow one or more client computer systems to access data on a mainframe host, can prevent conflicts for data stored under different types of file access methods, provide security at a file level and recover from interruption of communication between the host and client computer systems.